package com.example.wzdjcrdpassword.util;

import com.example.wzdjcrdpassword.entity.SystemEntity;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

/**
 * 请求上下文工具类
 * 用于在拦截器之后获取请求中的系统信息
 */
public class RequestContextUtil {
    
    /**
     * 获取当前请求中的系统信息
     * @return 系统信息，如果不存在返回null
     */
    public static SystemEntity getCurrentSystem() {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (attributes != null) {
            HttpServletRequest request = attributes.getRequest();
            return (SystemEntity) request.getAttribute("systemInfo");
        }
        return null;
    }
    
    /**
     * 获取当前请求的appId
     * @return appId，如果不存在返回null
     */
    public static String getCurrentAppId() {
        SystemEntity system = getCurrentSystem();
        return system != null ? system.getSystemId() : null;
    }
    
    /**
     * 获取当前请求的系统名称
     * @return 系统名称，如果不存在返回null
     */
    public static String getCurrentSystemName() {
        SystemEntity system = getCurrentSystem();
        return system != null ? system.getSystemName() : null;
    }
}